A serial EEPROM is a serial access programmable non-volatile memory device. Such memory devices are widely used throughout the computer industry for a large variety of different applications. Typically EEPROMs are used in electronic devices for storage of essential information which has to be maintained during power of and/or which has to be available when the electronic system is initialized. One difficulty which is encountered in the usage of such EEPROMs is that there are different types of EEPROMs which have different read protocols. In the prior art this requires the storage of a priori information about the read protocol to be used to access configuration and/or initialization information or a dedicated hardware design to implement the read protocol of the particular EEPROM used in the system.
This disadvantage is accepted in the prior art in view of the main advantage of a serial EEPROM which is its low cost and small chip size as compared to parallel non-volatile devices such as flash memory devices. The main reason for its low cost is its small pin count: as access is done in a serial manner no address and data busses are needed.
Therefore one particularly important field of application of EEPROMs is for "Plug and Play" hardware devices. The Plug and Play standard was developed in a joint effort between Compaq Corporation, Intel Corporation, Microsoft Corporation and Phoenix Technologies Ltd. The Plug and Play standard is described for example in the "Plug and Play ISA specification" which is publicly available on the internet sites of Microsoft and Intel Corporation. This standard is also described in a publication entitled "Hardware design guide for Windows 95", Microsoft Press, ISBN 1-55615-642-1.
The Plug and Play specification allows for the automatic configuration of Plug and Play expansion cards. Any conflict that may exist between different Plug and Play cards is automatically resolved by the system.
The two key functions performed by the Plug and Play system binary input output system (BIOS) are resource management and runtime configuration. The basic system resources, which include the direct memory access (DMA) channels, interrupt request lines, and I-O and memory addresses, are allocated by the Plug and Play system BIOS in its resource management mode. Because there are thousands of expansion cards available, these system resources are commonly allocated in a conflicting manner in ISA systems, which can lead to boot strap and system configuration failures. In its role as resource manager, the Plug and Play system BIOS configures the Plug and Play expansion cards before or during the power on self-test (POST) procedure.
During the Plug and Play configuration phase, the Plug and Play expansion cards provide their resource requirements to allow the system BIOS to perform resource allocation and conflict resolution. After the configuration procedure is complete, POST is executed. After the POST procedure is completed, control is transferred from the system BIOS to the operating system software. However, in its run time configuration mode, the system BIOS does provide configuration services for system board devices after the POST procedure has finished. This feature allows the system BIOS to dynamically change the resources allocated to system board devices after the operating system has been loaded and thereby allows the operating system software to manipulate the configuration of the system board devices.
During the Plug and Play configuration phase the system BIOS performs resource data read cycles on the isolated expansion card which is to be integrated in the host computer system. Resource data describes all the resource requirements of the Plug and Play ISA expansion card. The resource data includes such items as the Plug and Play version number, the number of logical devices (i.e., the number of functions available on the Plug and Play expansion card), the logical device ID, compatible device ID, DMA format, I-O port descriptor, fixed location I-O port descriptor, memory range descriptor, identifiers string and various other information.
The resource data along with the serial identifier of the expansion card are conventionally stored in a serial EEPROM. Typically the expansion card resource data is initially read into a resource data register on the expansion card. After 8 bits have been loaded into the resource data register, a status flag on the expansion card is set indicating that the next bite of resource data is ready to be outputted from the EEPROM. Thus, the system BIOS will read the resource data one bite at a time from the resource data register. This process is repeated until all the resource data has been read. For a more comprehensive description of the Plug and Play configuration phase, reference is made to U.S. Pat. No. 5,517,646.
A Plug and Play device which is using a serial EEPROM for resource data storage has to access that serial EEPROM according to the EEPROM's serial access protocol. Unfortunately, there are at least three different types of protocols which are commonly used by different types of serial EEPROM's.
Therefore a need exists for a more flexible hardware design of Plug and Play cards and controllers as well as for an improved method for reading of resource information from a Plug and Play hardware device as well as for a method for determining a type of a serial EEPROM.
These problems and others are substantially solved by applying the features laid down in the independent claims. Preferred embodiments are set out in the dependent claims.
The invention is advantageous in that it allows a more flexible hardware design of Plug and Play devices at lower cost. According to the invention the Plug and Play hardware can operate with different types of EEPROMs without a need to redesign the hardware for a particular type of EEPROM.
Also, it is not necessary to add a dedicated pin to the EEPROM to signal the type of EEPROM whi ch i s crucia l as regards the price of the EEPROM. On the contrary, standard EEPROM's can be used without any need of modification.
The invention is of use in all environments which require EEPROMs of different access protocols. The invention is particularly advantageous in a Plug and Play environment, especially in a Plug and Play environment according to the Plug and Play ISA specification. This allows the design of add-in personal computer cards which are reliably integrated into the host computer system according to the Plug and Play standard irrespective of the type of access protocol of the EEPROM used for the card. This is a substantial technical advantage in particular for inexperienced computer users since this saves th e user from having to manipulate the BIOS of the personal computer by hand in case of a mismatch of the assumed access protocol to the EEPROM and the actual type of EEPROM used in the card.